A video delivery system may include different databases that store different aspects of information for a video delivery service, such as a first database storing user interests, a second database for users' entitlements to view content, and a third database for users' locations. The backend system of the video delivery system includes different services that can handle requests and query the different databases. The services are configured to specifically store data in respective databases by indexing user profiles. Indexing the user profiles provides efficiencies because the services receive data, such as a user's interest, and can then store the user's interest with the user profile in the first database.
Multiple engines of the video delivery system may need to access the data via the services for different reasons. Also, some engines require data from multiple separate databases to provide a feature for delivering video to users. For example, a feature may require data about a user from a first database, and then use that data to query the second and third databases. This requires that the engine send queries to multiple services to retrieve the data. Given that the video delivery service may include a large amount of users, if an engine sends queries for a majority of the users at one time, the backend network may experience a spike in traffic. This may slow down processing time for other engines that may need to access the data and also slow down the queries being executed for the current engine.